package com.example.myproject;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration;
import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration;
import org.springframework.transaction.annotation.EnableTransactionManagement;

/**
 * Application.java 建议放到根目录下面,主要用于做一些框架配置
 * 主程序,一个带有main()方法的类，用于启动应用程序（关键）。
 *
 * 参考：https://blog.csdn.net/mickjoust/article/details/80352795
 *
 * 编程步骤：
 * 1. pom.xml中添加mysql数据库的依赖
 * 2. 创建一个启动类，并关闭Spring Boot下DataSource 的JPA自动配置。
 *   由于我们要明确配置与数据库相关的bean，因此需要通过排除AutoConfiguration类来关闭自动配置，如下所示;
 *   注意，由于我们关闭了AutoConfigurations里的事务配置，
 *   因此需要使用@EnableTransactionManagement来显式启用TransactionManagement注解。
 * 3. 在配置文件中加入自定义数据源属性。
 *   我们可以在application.properties文件中配置叫datasource.ds1.和datasource.ds2.的数据源配置。
 * 4. 定义自定义的用户的datasource前缀数据源（这是Spring Boot的一大特色），使上面的配置能生效，如代码。
 *
 * 2. 并添加config包，以及加载外部配置文件的JpaConfig
 * 3. 之后是添加domain.entity包，并添加各种实体类，User1Entity
 * 4. 之后添加domain.repository包，并添加对应实体类的相应与数据访问层的接口，UserRepositoryTest1
 * 5. 之后添加service包，并添加各实体类对应的业务接口，UserService
 * 6. 并添加service.impl包，并添加各业务接口的实现类，UserServiceImpl
 * 7. 最后添加controller包，并添加相应的页面控制访问类，UserController （如果不需要接口或者页面展示，就不需要该步骤）
 * 用测试类测试
 */

@SpringBootApplication
public class Application {

	public static void main(String[] args) {
		SpringApplication.run(Application.class, args);
	}

}
